﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Giaiphongmatbang.DataModel;

namespace Giaiphongmatbang.BLL
{
    public class PersionInventoryRepository
    {
        private QLGPMBEntities data = new QLGPMBEntities();

        public IEnumerable<PersonInventory> GetAll(int pageSize, int pageNumber, ref int totalRow)
        {
            var results = from p in data.PersonInventories
                          select p;
            totalRow = results.Count();
            return results.OrderBy(p=>p.FullName).Skip((pageNumber - 1) * pageSize).Take(pageSize);
        }

        public PersonInventory GetByPersionID(int ID)
        {
            var result = from p in data.PersonInventories
                         where p.PersonID==ID
                         select p;
            return result.FirstOrDefault();
        }

        //Thống kê người thống kê tài sản theo dự án
        public IEnumerable<PersonInventory> GetPersionByProjectID(int ProjectID)
        {
            return
                data.PersonInventories.Where(p =>
                    data.Projects.Any(project => project.ProjectID == ProjectID));
        }

        //Thống kê nhóm thống kê tài sản nằm trong dự án của một hộ gia đình
        public IEnumerable<PersonInventory> GetPersonByCMND(string cmnd)
        {
            return data.PersonInventories.Where(p => data.ComponentInventories.Any(q => data.Inventories.Any(u => u.CMND == cmnd)));
        }

        public void Insert(PersonInventory pi)
        {
            data.AddToPersonInventories(pi);
        }

        public void DeleteByID(int id)
        {
            var obj = GetByPersionID(id);
            if (obj != null)
            {
                data.DeleteObject(obj);
            }
        }

        public void Save()
        {
            data.SaveChanges();
        }
    }
}